Next: Cons Cell Type, Previous: Symbol Type, Up: Programming Types [Contents][Index]
A sequence is a Lisp object that represents an ordered set of elements. There are two kinds of sequence in Emacs Lisp: lists and arrays.
Lists are the most commonly-used sequences. A list can hold elements of any type, and its length can be easily changed by adding or removing elements. See the next subsection for more about lists.
Arrays are fixed-length sequences. They are further subdivided
into strings, vectors, char-tables and bool-vectors. Vectors can
hold elements of any type, whereas string elements must be
characters, and bool-vector elements must be t or
nil. Char-tables are like vectors except that they
are indexed by any valid character code. The characters in a
string can have text properties like characters in a buffer (see
Text
Properties), but vectors do not support text properties, even
when their elements happen to be characters.
Lists, strings and the other array types also share important
similarities. For example, all have a length l, and
all have elements which can be indexed from zero to l
minus one. Several functions, called sequence functions, accept
any kind of sequence. For example, the function
length reports the length of any kind of sequence.
See Sequences
Arrays Vectors.
It is generally impossible to read the same sequence twice,
since sequences are always created anew upon reading. If you read
the read syntax for a sequence twice, you get two sequences with
equal contents. There is one exception: the empty list
() always stands for the same object,
nil.